Skip to content

SFTP feature polish - #1

Merged
backrunner merged 1 commit into
mainfrom
feature/sftp
Jun 4, 2026
Merged

SFTP feature polish#1
backrunner merged 1 commit into
mainfrom
feature/sftp

Conversation

@Rorical

@Rorical Rorical commented Jun 4, 2026

Copy link
Copy Markdown
Collaborator

Complete SFTP browser, file views, path

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Polishes the SFTP workspace experience by improving navigation (path editing), adding desktop drag-and-drop uploads, enhancing permission handling (symbolic + special bits), and strengthening transfer behavior with timestamp preservation and integration coverage.

Changes:

  • Add desktop drag-and-drop upload support and short-lived directory listing caching in the SFTP pane, plus direct path entry.
  • Introduce symbolic permission parsing/rendering (including setuid/setgid/sticky) and update UI + tests accordingly.
  • Add opt-in Docker-based SFTP integration fixture and a comprehensive SFTP integration test (chmod, timestamps, recursive transfers, overwrite, failures).

Reviewed changes

Copilot reviewed 27 out of 33 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
windows/flutter/generated_plugins.cmake Registers desktop_drop plugin for Windows builds.
windows/flutter/generated_plugin_registrant.cc Adds desktop_drop plugin registration on Windows.
linux/flutter/generated_plugins.cmake Registers desktop_drop plugin for Linux builds.
linux/flutter/generated_plugin_registrant.cc Adds desktop_drop plugin registration on Linux.
macos/Flutter/GeneratedPluginRegistrant.swift Registers desktop_drop plugin on macOS.
macos/Podfile.lock Updates CocoaPods lockfile for new/updated Flutter plugins.
macos/Runner/DebugProfile.entitlements Removes iCloud/CloudKit entitlements from Debug/Profile configuration.
macos/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved Removes workspace SwiftPM resolution file.
macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved Removes project SwiftPM resolution file.
pubspec.yaml Adds desktop_drop dependency.
pubspec.lock Locks desktop_drop and new transitive deps.
lib/features/workspace/presentation/workspace_screen.dart Imports desktop_drop for use by workspace part files.
lib/features/workspace/presentation/workspace_screen/sessions_tabs.dart Adjusts _SftpPane keying to keep state stable across path changes.
lib/features/workspace/presentation/workspace_screen/sftp_pane.dart Adds path editing UI, list caching, refresh bypass, and drag/drop upload enqueueing.
lib/features/workspace/presentation/workspace_screen/sftp_components.dart Widen permissions column for symbolic permissions display.
lib/features/workspace/presentation/workspace_screen/file_path_helpers.dart Adds dropped-item name sanitization helper; removes octal-only validation helper.
lib/features/sftp/domain/sftp_entry.dart Implements octal normalization + symbolic parsing/rendering (incl. special bits).
lib/features/sftp/data/dartssh2_sftp_connection.dart Preserves special permission bits; best-effort timestamp preservation on upload/download.
lib/l10n/app_en.arb Updates permissions label/error text to mention symbolic format.
lib/l10n/app_ja.arb Updates permissions label/error text to mention symbolic format.
lib/l10n/app_zh.arb Updates permissions label/error text to mention symbolic format.
lib/l10n/generated/app_localizations.dart Regenerates localization bindings reflecting updated strings.
lib/l10n/generated/app_localizations_en.dart Regenerates English localization output.
lib/l10n/generated/app_localizations_ja.dart Regenerates Japanese localization output.
lib/l10n/generated/app_localizations_zh.dart Regenerates Chinese localization output.
test/workspace_smoke_test.dart Extends smoke test to cover path entry, refresh bypass, and symbolic chmod UI flow.
test/workspace_smoke_test_fakes.dart Adds SFTP list() call counters to verify caching behavior in tests.
test/features/sftp/domain/sftp_permissions_test.dart Adds unit tests for octal normalization and symbolic permission parsing/rendering.
test/features/sftp/data/dartssh2_sftp_connection_test.dart Extends mapping tests to validate symbolic permissions + special bits.
test/features/sftp/data/dartssh2_sftp_connection_integration_test.dart Adds opt-in integration test exercising chmod, timestamps, transfers, overwrite, failures.
test/fixtures/sftp/README.md Documents how to run the local SFTP fixture and opt-in tests.
test/fixtures/sftp/Dockerfile Adds Debian OpenSSH server fixture image for integration testing.
test/fixtures/sftp/docker-compose.yml Adds compose service exposing fixture on localhost port 2222.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread macos/Runner/DebugProfile.entitlements
@backrunner
backrunner merged commit 0fc77b1 into main Jun 4, 2026
1 check passed

@backrunner backrunner left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants